/*
** Mortem's HGE Addon 1.2
** Copyright (C) 2006-2007, Osokin 'elmortem' Makar
** http://elmortem.mirgames.ru
**
** Input based on HGE Input Events
*/

#ifndef _MHAINPUT_H_
#define _MHAINPUT_H_

#include <hge.h>

const int MHA_INPUT_ARRAY[] = {HGEK_LBUTTON, HGEK_RBUTTON, HGEK_MBUTTON, HGEK_ESCAPE, 
													HGEK_BACKSPACE, HGEK_TAB, HGEK_ENTER, HGEK_SPACE,
													HGEK_SHIFT, HGEK_CTRL, HGEK_ALT, HGEK_LWIN,
													HGEK_RWIN, HGEK_APPS, HGEK_PAUSE, HGEK_CAPSLOCK,
													HGEK_NUMLOCK, HGEK_SCROLLLOCK, HGEK_PGUP, HGEK_PGDN,
													HGEK_HOME, HGEK_END, HGEK_INSERT, HGEK_DELETE,
													HGEK_LEFT, HGEK_UP, HGEK_RIGHT, HGEK_DOWN,
													HGEK_0, HGEK_1, HGEK_2, HGEK_3, HGEK_4,
													HGEK_5, HGEK_6, HGEK_7, HGEK_8, HGEK_9,
													HGEK_A, HGEK_B, HGEK_C, HGEK_D, HGEK_E, HGEK_F, HGEK_G,
													HGEK_H, HGEK_I, HGEK_J, HGEK_K, HGEK_L, HGEK_M, HGEK_N,
													HGEK_O, HGEK_P, HGEK_Q, HGEK_R, HGEK_S, HGEK_T, HGEK_U,
													HGEK_V, HGEK_W, HGEK_X, HGEK_Y, HGEK_Z,
													HGEK_GRAVE, HGEK_MINUS, HGEK_EQUALS, HGEK_BACKSLASH,
													HGEK_LBRACKET, HGEK_RBRACKET, HGEK_SEMICOLON, HGEK_APOSTROPHE,
													HGEK_COMMA, HGEK_PERIOD, HGEK_SLASH,
													HGEK_NUMPAD0, HGEK_NUMPAD1, HGEK_NUMPAD2, HGEK_NUMPAD3,
													HGEK_NUMPAD4, HGEK_NUMPAD5, HGEK_NUMPAD6, HGEK_NUMPAD7,
													HGEK_NUMPAD8, HGEK_NUMPAD9,
													HGEK_MULTIPLY, HGEK_DIVIDE, HGEK_ADD, HGEK_SUBTRACT, HGEK_DECIMAL,
													HGEK_F1, HGEK_F2, HGEK_F3, HGEK_F4, HGEK_F5, HGEK_F6,
													HGEK_F7, HGEK_F8, HGEK_F9, HGEK_F10, HGEK_F11, HGEK_F12};

class mhaInput {
public:
	mhaInput(void);
	~mhaInput(void);
	
	void Update(void);
	bool IsClick(int key);
	bool IsDown(int key);
	bool IsRectOver(float x, float y, float width, float height);
	void Reset(void);
	
	hgeInputEvent Event;
protected:
	static HGE *hge;
	bool bDown[256];
};

#endif